package com.ruoyi.shop.service;

import java.util.List;
import com.ruoyi.shop.domain.ShopCoupon;
import com.ruoyi.shop.domain.vo.ShopCouponVo;

/**
 * 优惠券Service接口
 * 
 * @author Alan Zhang
 * @date 2021-09-18
 */
public interface IShopCouponService 
{
    /**
     * 查询优惠券
     * 
     * @param id 优惠券主键
     * @return 优惠券
     */
    public ShopCoupon selectShopCouponById(Long id);

    /**
     * 查询优惠券列表
     * 
     * @param shopCoupon 优惠券
     * @return 优惠券集合
     */
    public List<ShopCoupon> selectShopCouponList(ShopCoupon shopCoupon);

    /**
     * 新增优惠券
     * 
     * @param shopCoupon 优惠券
     * @return 结果
     */
    public int insertShopCoupon(ShopCoupon shopCoupon);

    /**
     * 修改优惠券
     * 
     * @param shopCoupon 优惠券
     * @return 结果
     */
    public int updateShopCoupon(ShopCoupon shopCoupon);

    /**
     * 批量删除优惠券
     * 
     * @param ids 需要删除的优惠券主键集合
     * @return 结果
     */
    public int deleteShopCouponByIds(String ids);

    /**
     * 删除优惠券信息
     * 
     * @param id 优惠券主键
     * @return 结果
     */
    public int deleteShopCouponById(Long id);

    /**
     * 更新发优惠券数量
     * @param couponId
     */
    public int doSyncTakeCount(Long couponId);

    /**
     * 更新优惠券使用数量
     * @param couponId
     */
    public int doSyncUsedCount(Long couponId);

    /**
     * 用户领券信息
     * @param userId
     * @return
     */
    public List<ShopCouponVo> selectJoinShopCouponByUserId(Long userId);
}
